home *** CD-ROM | disk | FTP | other *** search
- PAGE 55,132
- CODE SEGMENT PARA
- ASSUME CS:CODE,DS:CODE
-
- W1 DW 4
- W2 DW 6
- B1 DB 6
- B2 DB 2
- V1 DD 3
- V2 DD 5
-
- ORG 100H
-
- START:
- MOV BX,1
- ADD BX,W1 ; BX <-- BX + [W1]
- SUB BX,W2 ; BX <-- BX - [W2]
- ADC BH,B1 ; BH <-- BH + [B1] + CARRY
- SBB B2,BL ; [B2] <-- [B2] - BL - CARRY
- NEG B2 ; [B2] <-- - [B2]
- INC B1 ; [B1] <-- [B1] + 1
- DEC AX ; AX <-- AX - 1
-
- ADD DI,200 ; DI <-- DI + 200
- SUB SP,100 ; SP <-- SP - 100
- ADC CX,10 ; CX <-- CX + 10 + CARRY
- SBB W1,20 ; [W1] <-- [W1] - 20 - CARRY
- CMP BX,AX ; SET FLAGS FOR BX-AX
- CMP SI,500 ; SET FLAGS FOR SI - 500
-
-
-
-
- MOV B1,04
- MOV AL,0FFH
- MUL B1 ; AX <-- AL * [B1] UNSIGNED
-
- MOV BX,0FFFDH
- MOV AX,BX
- IMUL BX ; DX:AX <-- AX * BX SIGNED
-
- MOV W1,05
- MOV DX,04
- MOV AX,0FFFBH
- DIV W1 ; AX <-- DX:AX/[W1] UNSIGNED
-
- MOV AX,8000H
- MOV CH,0F0H
- IDIV CH ; AL <-- AX/CH SIGNED
-
- MOV AL,0E0H
- CBW ; SIGN EXTEND AL --> AX
- CWD ; SIGN EXTEND AX --> DX:AX
-
- ; ----------- MULTIPLE PRECISION ADD -----------------
-
- MOV AX,0EFF1H ; LOW ORDER WORD
- ADD AX,100FH
- MOV BX,AX
- MOV AX,21FEH ; HIGH ORDER WORD
- ADC AX,3ECAH ; 21FE EFF1 +3ECA 100F = 50C9 0000
-
- ; ----------- MULTIPLE PRECISION SUB -----------------
-
- MOV AX,0FFFFH ; LOW ORDER WORD
- SUB AX,0002H
- MOV BX,AX
- MOV AX,0FFFFH ; HIGH ORDER WORD
- SBB AX,0000H ; FFFF FFFF - 0000 0002 = FFFF FFFD
-
-
- CODE ENDS
- END START
-
-
-
-
-